import zookeeper from 'node-zookeeper-client';
import {readAndParseYAML} from "../util";


const config = readAndParseYAML('config.yml')


const numIncrements = 10; // 想要一次性领取的份数
// 创建一个ZooKeeper客户端
const client = zookeeper.createClient(config.zookeeper.connectString);

// 连接到ZooKeeper服务器
client.connect();

// 监听连接事件
client.once('connected', () => {
    console.log('Connected to ZooKeeper');

    // 创建一个循环，领取 numIncrements 个份数
    for (let i = 0; i < numIncrements; i++) {
        // 创建一个临时顺序节点，这将在节点路径后面追加一个唯一的递增数字
        client.create('/id-node-', Buffer.from(''), zookeeper.CreateMode.EPHEMERAL_SEQUENTIAL, (err, path) => {
            if (err) {
                console.error('Failed to create node:', err);
                return;
            }

            console.log('Created node:', path);

            // 解析节点路径，提取递增的唯一ID部分
            const uniqueId = parseInt(path.slice('/id-node-'.length));

            console.log('Distributed unique ID:', uniqueId);

            // 如果是最后一个节点，关闭ZooKeeper连接
            if (i === numIncrements - 1) {
                client.close();
            }
        });
    }
});
// 监听错误事件
/*
client.on('error', (err) => {
    console.error('ZooKeeper error:', err);
});*/
